Shell Exec
Run shell commands like git, rvm, rspec, ls, etc. with Bash, Zsh and others inside your Sublime Text 3.
Details
Installs
- Total 23K
- Win 9K
- Mac 7K
- Linux 7K
Dec 4 | Dec 3 | Dec 2 | Dec 1 | Nov 30 | Nov 29 | Nov 28 | Nov 27 | Nov 26 | Nov 25 | Nov 24 | Nov 23 | Nov 22 | Nov 21 | Nov 20 | Nov 19 | Nov 18 | Nov 17 | Nov 16 | Nov 15 | Nov 14 | Nov 13 | Nov 12 | Nov 11 | Nov 10 | Nov 9 | Nov 8 | Nov 7 | Nov 6 | Nov 5 | Nov 4 | Nov 3 | Nov 2 | Nov 1 | Oct 31 | Oct 30 | Oct 29 | Oct 28 | Oct 27 | Oct 26 | Oct 25 | Oct 24 | Oct 23 | Oct 22 | Oct 21 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 2 | 0 | 0 | 1 | 1 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 |
Mac | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
Readme
- Source
- raw.githubusercontent.com
Shell Exec
Run shell commands like git, rvm, rspec, ls, etc. with Bash, Zsh and others inside your Sublime Text 3.
Command Palette
Shell Exec: Open shell_exec_open
Default Shortcuts
- Linux: ctrl + shift + c
- Mac: shift + super + c
- Windows: ctrl + shift + c
Settings
User/Preferences.sublime-settings
:
// You can use this file to load RVM, ~/.bashrc, custom shell functions...
// "shell_exec_load_sh_file": "your-sh-file-to-load-before-commands.sh",
// Shell executable: "/bin/bash", "/bin/sh", "/usr/bin/zsh"...
"shell_exec_executable": "/bin/bash",
// Shell executable option: --login # Run as login load your ~/.bashrc or other user settings.
"shell_exec_executable_option": "--login", // ["-l"] ["--login"]
// The output of the command can be shown on the Panel or in a New File: "panel", "file" or "none".
"shell_exec_output": "file",
// Set the Output File Syntax. Default is Ruby, because Ruby looks nice. =)
"shell_exec_output_syntax": "Ruby",
// Enable or Disable the word wrap at the Output File.
"shell_exec_output_word_wrap": true,
// Enable or Disable the Debug infos (for plugin developers).
"shell_exec_debug": false,
// Name of the Shell Exec command box.
"shell_exec_title": "Shell Exec",
// Defines where the command should be executed: false, "project_folder" or "file_folder".
// If "project_folder" is set, will execute: cd project_folder && your_commnad.
"shell_exec_context": "project_folder",
Custom Shortcuts
shell_exec_open
: Open Shell Exec box to input some command.
shell_exec_run
: Runs a predefined command.
User/Default (Linux).sublime-keymap
:
{
// (ctrl+shift+c+o) key binding
"keys": ["ctrl+shift+c", "ctrl+shift+o"],
// "shell_exec_open": Open Shell Exec box to input some command.
// "shell_exec_run": Runs a predefined command.
"command": "shell_exec_open",
"args": {
// Title of the Shell Exec box.
"title": "Shell Exec",
// Predefined command.
"command": "git status",
// Format the command with variables.
"format": "git ${input}",
// You can use this file to load RVM, ~/.bashrc, custom shell functions...
// "load_sh_file": "your-sh-file-to-load-before-commands.sh",
// Shell executable: "/bin/bash", "/bin/sh", "/usr/bin/zsh"...
"executable": "/bin/bash",
// Shell executable option: --login # Run as login load your ~/.bashrc or other user settings.
"executable_option": "--login", // ["-l"] ["--login"]
// The output of the command can be shown on the Panel or in a New File: "panel", "file".
"output": "file",
// Set the Output File Syntax. Default is Ruby, because Ruby looks nice. =)
"output_syntax": "Ruby",
// Enable or Disable the word wrap at the Output File.
"output_word_wrap": true,
// Enable or Disable the Debug infos (for plugin developers).
"debug": false,
// Name of the Shell Exec command box.
"title": "Shell Exec",
// Defines where the command should be executed: false, "project_folder" or "file_folder".
// If "project_folder" is set, will execute: cd project_folder && your_commnad.
"context": "project_folder",
}
}
Command Format Syntax
// (ctrl+shift+c+f) key binding
"keys": ["ctrl+shift+c", "ctrl+shift+f"],
// "shell_exec_open": Open Shell Exec box to input some command.
// "shell_exec_run": Runs a predefined command.
"command": "shell_exec_exec",
"args": {
// Format the command with variables.
"format": "rspec '${file}:${row}'"
}
Available variables:
* ${input}
: Input from Shell Exec box.
* ${region}
: Selected text.
* ${row}
: Selected row number or the cursor position at file.
* ${file_name}
: ShellExec.py
* ${file}
: /home/user/.config/sublime-text-3/Packages/shell-exec/ShellExec.py
* ${packages}
: /home/user/.config/sublime-text-3/Packages
* ${file_base_name}
: ShellExec
* ${platform}
: Linux
* ${file_extension}
: py
* ${file_path}
: /home/user/.config/sublime-text-3/Packages/shell-exec
* ${folder}
: /home/user/.config/sublime-text-3/Packages/shell-exec
Common Problems
RVM Command, ~/.bashrc, ~/.bash_profile, ~/.zshrc…
You can load RVM and profile files with login mode:
// Shell executable: "/bin/bash", "/bin/sh", "/usr/bin/zsh"...
"shell_exec_executable": "/bin/bash",
// Shell executable option: --login # Run as login load your ~/.bashrc or other user settings.
"shell_exec_executable_option": "--login", // ["-l"] ["--login"]
Or… You can load a custom sh file:
"shell_exec_load_sh_file": "my-config-loader-file.sh"
my-config-loader-file.sh
: Loading ~/.bashrc simulating interactive shell:
PS1=true # Simulate Interactive Shell
source ~/.bashrc
my-config-loader-file.sh
: Loading RVM command:
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
Debugging
Just enable the debug to see panel outputs:
User/Preferences.sublime-settings
:
// Enable or Disable the Debug infos (for plugin developers).
"shell_exec_debug": true,
Some Cool Demos
Git
{
"keys": ["ctrl+shift+g", "ctrl+shift+g"],
"command": "shell_exec_open",
"args": { "title": "Git Command:", "format": "git ${input}" }
},
{
"keys": ["ctrl+shift+g", "ctrl+shift+c"],
"command": "shell_exec_open",
"args": {
"title": "Git Checkout:",
"format": "git checkout ${input}",
"command": "'${file}'"
}
},
{
"keys": ["ctrl+shift+g", "ctrl+shift+s"],
"command": "shell_exec_run",
"args": { "command": "git status" }
},
{
"keys": ["ctrl+shift+g", "ctrl+shift+d", "ctrl+shift+a"],
"command": "shell_exec_run",
"args": { "command": "git diff", "output_syntax": "Diff" }
},
{
"keys": ["ctrl+shift+g", "ctrl+shift+d", "ctrl+shift+f"],
"command": "shell_exec_run",
"args": { "command": "git diff '${file}'", "output_syntax": "Diff" }
},
{
"keys": ["ctrl+shift+g", "ctrl+shift+b"],
"command": "shell_exec_run",
"args": { "command": "git blame '${file}'", "output_syntax": "Git Blame" }
}
RSpec
{
"keys": ["ctrl+shift+r", "ctrl+shift+r"],
"command": "shell_exec_open",
"args": {
"title": "RSpec Command:", "format": "rspec ${input} --require spec_helper"
}
},
{
"keys": ["ctrl+shift+r", "ctrl+shift+o"],
"command": "shell_exec_open",
"args": {
"title": "RSpec Command:",
"command": "'${file}:${row}'",
"format": "rspec ${input} --require spec_helper"
}
},
{
"keys": ["ctrl+shift+r", "ctrl+shift+a"],
"command": "shell_exec_run",
"args": { "command": "rspec spec --require spec_helper" }
},
{
"keys": ["ctrl+shift+r", "ctrl+shift+f"],
"command": "shell_exec_run",
"args": { "command": "rspec '${file}' --require spec_helper" }
},
{
"keys": ["ctrl+shift+r", "ctrl+shift+l"],
"command": "shell_exec_run",
"args": { "command": "rspec '${file}:${row}' --require spec_helper" }
},
{
"keys": ["ctrl+shift+r", "ctrl+shift+s"],
"command": "shell_exec_run",
"args": { "command": "rspec '${region}' --require spec_helper" }
}
Unix
{
"keys": ["ctrl+shift+u", "ctrl+shift+p"],
"command": "shell_exec_open",
"args": {
"title": "Find Process",
"format": "ps aux | grep ${input}"
}
}